# 补充用户信息 ：打印 （print）
# 当用户输入信息后 后台系统会去调后台数据库找到相对应的用户信息
# 本节课将学习占位符和 .format 来模拟后台调出用户信息
# print 就意味着换行 end=/n 所以每输入一个print就会将打印的内容自动换行
# print("Hello word")
# print("I like python")

# 当你想查看某个变量或是某个代码时 可以将鼠标停留在变量或代码处 即可查看关于该变量或者代码的相关属性和定义
# pycharm 中 颜色区分： 黑色为变量（可以对其赋任意值，是动态变化的）  绿色为字符串(是固定不变的)
# 要求用户输入以下信息 用input
name = input("name: ")
age = input("age: ")
job = input("job: ")
salary = input("salary: ")

# 1. 字符串拼接 +打印
# 字符串是一个定量，无法动态变化。如果要使打印出的字符串能够动态变化，就需要将字符串拆开变更为多个部分，将变量穿插入其中。（记住字符串一定要用引号包起来）

# info1 = '''-------- INFO --------''' +name+ '''--------''' + '''    # 为了美观性 添加一行用于分割上下文 对于变量info的名称可以随意更改
# name: ''' +name+ '''               这里name是变量      这里的+是用于拼接下行的字符串  '''用于换行和包住字符串        这行注释是对其上面相应位置的解释
# age: ''' +age+ '''
# job: ''' +job+ '''
# salary: ''' +salary    # 应为salary（变量）后面没有需要拼接的字符串所以不用加引号
# print(info1)


# 2. 占位符
# 常见的几种打印占位符格式的表示：
# %s代表 string
# %d代表 number  设置该占位符时用 int(input())
# %f代表 float（浮点即小数）
# 注意点：!!!
# 占位符有顺序 必须依次填入相对应的内容 重复值也需要填入

# info2 = '''-------- INFO %s --------
# name: %s
# age: %s
# job: %s
# salary: %s                          # 注意这里的 %s是占位符替代了变量
# '''%(name,name,age,job,salary)      # 在（）内的都是变量
# print(info2)

# 如果设置要求用户只能在特定的位置输入数值 其它位置为字符串
# 在python中默认输入的都为字符串(str)  所以在使用input的时候要依据需求来改变
# input 是字符串   如果想让输出的内容为数值型 需要强制转换数据类型 用int 。

# name = input("name: ")
# age = int(input("age: "))
# job = input("job: ")
# salary = int(input("salary: "))

# info3 = '''-------- INFO %s --------
# name: %s
# age: %d
# job: %s
# salary: %d
# '''%(name,name,age,job,salary)
# print(info3)


# 3.   .format()  是一个字符串的格式化方法/函数  这个优化了占位符  必须使用的是{}将变量包起来
# 优点（与占位符相比）：1.不需要考虑参数出现的顺序 2.多个重复项只需要赋值一次  明确数据输入 （如：变量name） 和输出（如：打印的html_name）
# info4 = '''-------- INFO {html_name}--------
# name: {html_name}
# age: {html_age}
# job: {html_job}
# salary: {html_salary}
# ''' .format(html_age=age,html_job=job,html_name=name,html_salary=salary)
# print(info4)

# .format() 的{}内也可以使用数值但数值必须在对应变量的个数范围内 （如下只有4个变量 不可以出现超过数字4的数字） 不同项的输出值对应的数值不同 （）内的变量没有顺序
info5 =  '''-------INFO {0} -------
Name:{0}
Age:{1}
Job:{3}
Salary:{2}
'''.format(name,salary,age,job)
print(info5)

# 补充关于换行  由于引号用来包字符串，同时当字符串内容很多时为了更好的换行 所以一般使用''' 三引号既起到包字符串又起到换行的作用
print('''hello''' +name +'''
word''')          # 变量  +：拼接下段   '''既是word字符串的引号之一又有换行作用  '''放在需要换行的地方 则引号之后的字符串就要另起一行开始写 （在最后再来'''把整个字符串抱起来）